Calcular índices de concavidad y perfiles longitudinales de cursos fluviales

Imprimir lista de mapas ráster y vectoriales dentro en la región/localización activa

execGRASS(
  'g.list',
  flags = 't',
  parameters = list(
    type = c('raster', 'vector')
  )
)
## raster/LfpNetwork-flds-Oz
## raster/LfpNetwork-outlet-Oz
## raster/MASK
## raster/accum-de-rwshed
## raster/aspect
## raster/basins
## raster/dem
## raster/drainage-dir-de-rstr
## raster/drainage-dir-de-rwshed
## raster/half-basins
## raster/order-hack-gravelius
## raster/order-horton
## raster/order-shreve
## raster/order-strahler
## raster/order-topology
## raster/ozama-basin
## raster/ozama-stream-de-rstr
## raster/pcurv
## raster/r-stream-basins-1
## raster/r-stream-basins-2
## raster/r-stream-basins-3
## raster/r-stream-basins-4
## raster/r-stream-basins-5
## raster/r-stream-basins-6
## raster/r-stream-basins-7
## raster/slope
## raster/stream-de-rwshed
## raster/tcurv
## vector/LfpNetwork_lfp_all_final_ozm
## vector/LfpNetwork_lfp_all_final_ozm1
## vector/LfpNetwork_lfp_all_final_ozm3
## vector/LfpNetwork_lfp_all_final_ozm5
## vector/LfpNetwork_lfp_ozm
## vector/LfpNetwork_lfp_ozm1
## vector/LfpNetwork_lfp_ozm3
## vector/LfpNetwork_lfp_ozm5
## vector/LfpNetwork_outlet_Oz
## vector/LfpNetwork_tributaries_ozm
## vector/LfpNetwork_tributaries_ozm1
## vector/LfpNetwork_tributaries_ozm3
## vector/LfpNetwork_tributaries_ozm5
## vector/LfpNetwork_tributaries_preconf_ozm
## vector/LfpNetwork_tributaries_preconf_ozm1
## vector/LfpNetwork_tributaries_preconf_ozm3
## vector/LfpNetwork_tributaries_preconf_ozm5
## vector/c_ozama
## vector/dem_extent
## vector/order_all
## vector/ozama_basin
## vector/ozama_stream_de_rstr
## vector/r_stream_basins_1
## vector/r_stream_basins_2
## vector/r_stream_basins_3
## vector/r_stream_basins_4
## vector/r_stream_basins_5
## vector/r_stream_basins_6
## vector/r_stream_basins_7

Obtener coordenada

mapview(order, col.regions = 'blue', legend = FALSE)

Obtener cursos más largos (cargar función propia)

devtools::source_url('https://raw.githubusercontent.com/geofis/rgrass/master/lfp_network.R') #Cargada como función "LfpNetwork"
LfpNetwork(
  xycoords = my_trans(c(-69.79820,18.60789)),
  suffix = 'ozm3',
  stream_vect = 'order_all',
  direction = 'drainage-dir-de-rstr'
)

Imprimir lista de mapas ráster y vectoriales

execGRASS(
  'g.list',
  flags = 't',
  parameters = list(
    type = c('raster', 'vector')
  )
)
## raster/LfpNetwork-flds-Oz
## raster/LfpNetwork-outlet-Oz
## raster/MASK
## raster/accum-de-rwshed
## raster/aspect
## raster/basins
## raster/dem
## raster/drainage-dir-de-rstr
## raster/drainage-dir-de-rwshed
## raster/half-basins
## raster/order-hack-gravelius
## raster/order-horton
## raster/order-shreve
## raster/order-strahler
## raster/order-topology
## raster/ozama-basin
## raster/ozama-stream-de-rstr
## raster/pcurv
## raster/r-stream-basins-1
## raster/r-stream-basins-2
## raster/r-stream-basins-3
## raster/r-stream-basins-4
## raster/r-stream-basins-5
## raster/r-stream-basins-6
## raster/r-stream-basins-7
## raster/slope
## raster/stream-de-rwshed
## raster/tcurv
## vector/LfpNetwork_lfp_all_final_ozm
## vector/LfpNetwork_lfp_all_final_ozm1
## vector/LfpNetwork_lfp_all_final_ozm3
## vector/LfpNetwork_lfp_all_final_ozm5
## vector/LfpNetwork_lfp_ozm
## vector/LfpNetwork_lfp_ozm1
## vector/LfpNetwork_lfp_ozm3
## vector/LfpNetwork_lfp_ozm5
## vector/LfpNetwork_outlet_Oz
## vector/LfpNetwork_tributaries_ozm
## vector/LfpNetwork_tributaries_ozm1
## vector/LfpNetwork_tributaries_ozm3
## vector/LfpNetwork_tributaries_ozm5
## vector/LfpNetwork_tributaries_preconf_ozm
## vector/LfpNetwork_tributaries_preconf_ozm1
## vector/LfpNetwork_tributaries_preconf_ozm3
## vector/LfpNetwork_tributaries_preconf_ozm5
## vector/c_ozama
## vector/dem_extent
## vector/order_all
## vector/ozama_basin
## vector/ozama_stream_de_rstr
## vector/r_stream_basins_1
## vector/r_stream_basins_2
## vector/r_stream_basins_3
## vector/r_stream_basins_4
## vector/r_stream_basins_5
## vector/r_stream_basins_6
## vector/r_stream_basins_7

Representar con leaflet

lfp <- readVECT('LfpNetwork_lfp_all_final_ozm3')
lfp4326 <- spTransform(lfp, CRSobj = CRS("+init=epsg:4326"))
lfp_con_id <- leaflet() %>%
  addProviderTiles(providers$Stamen.Terrain, group = 'terrain') %>%
  addPolylines(
    data = lfp4326, weight = 3, opacity = 0.7, group = 'order',
    label = ~as.character(cat),
    highlightOptions = highlightOptions(color = "white",
                                      weight = 5, bringToFront = F, opacity = 1),
    labelOptions = labelOptions(noHide = T,
                                style = list(
                                  "font-size" = "8px",
                                  "background" = "rgba(255, 255, 255, 0.5)",
                                  "background-clip" = "padding-box",
                                  "padding" = "1px"))) %>% 
  leafem::addHomeButton(extent(lfp4326), 'Ver todo')
lfp_con_id
lfp_con_id %>% mapview::mapshot(file = 'lfp_con_id_salida.png')

Exportar a KML

execGRASS(
  'v.out.ogr',
  flags = c('overwrite','quiet'),
  parameters = list(
    input = 'LfpNetwork_lfp_all_final_ozm3',
    output = 'lfp_ozm_kml.kml3',
    format = 'KML',
    dsco = 'NameField=cat'
  )
)

Obtención de perfiles longitudinales e índices de concavidad

source('lfp_profiles_concavity.R') #Cargado como función "LfpProfilesConcavity"
ozama_conv_prof <- LfpProfilesConcavity(
  xycoords = my_trans(c(-69.79820,18.60789)),
  network = 'LfpNetwork_lfp_all_final_ozm3',
  prefix = 'Oz',
  dem = 'dem',
  direction = 'drainage-dir-de-rstr',
  crs = '+init=epsg:32619',
  smns = 0.5,
  nrow = 5)

Mostrar resultados

ozama_conv_prof$profiles

ozama_conv_prof$concavityindex
##    stream           ci
## 1    Oz-1  0.503543399
## 2    Oz-2  0.076696058
## 3    Oz-3 -0.172192920
## 4    Oz-4  0.113423470
## 5    Oz-5  0.279160051
## 6    Oz-6 -0.042920378
## 7    Oz-7  0.087870404
## 8    Oz-8 -0.002252731
## 9    Oz-9  0.334627457
## 10  Oz-10  0.096229510
## 11  Oz-11  0.350304676
## 12  Oz-12  0.381370085
## 13  Oz-13 -0.038475239
## 14  Oz-14  0.126557359
## 15  Oz-15  0.149267019
## 16  Oz-16 -0.105994110
## 17  Oz-17  0.422342707
ozama_conv_prof$dimensionlessprofiles$layers[[2]]$aes_params$size <- 2
ozama_conv_prof$dimensionlessprofiles$theme$text$size <- 12
ozama_conv_prof$dimensionlessprofiles

Tabla dx/dy, tanto en metros como adimensional. Útiles para construir perfiles por cuenta propia

ozama_conv_prof$lengthzdata %>% tibble::as.tibble()
## Warning: `as.tibble()` is deprecated, use `as_tibble()` (but mind the new semantics).
## This warning is displayed once per session.
## # A tibble: 1,014 x 4
##    stream length     z rowname
##    <fct>   <dbl> <dbl>   <int>
##  1 Oz-1      0    8.20       1
##  2 Oz-1     89.1  8.19       2
##  3 Oz-1    126.   8.19       3
##  4 Oz-1    215.   8.18       4
##  5 Oz-1    304.   8.17       5
##  6 Oz-1    341.   8.16       6
##  7 Oz-1    430.   8.15       7
##  8 Oz-1    520.   8.14       8
##  9 Oz-1    609.   8.13       9
## 10 Oz-1    698.   8.13      10
## # … with 1,004 more rows
ozama_conv_prof$lengthzdatadmnls %>% tibble::as.tibble()
## # A tibble: 1,014 x 6
##    stream length     z rowname length.dmnls z.dmnls
##    <fct>   <dbl> <dbl>   <int>        <dbl>   <dbl>
##  1 Oz-1      0    8.20       1      0        0.0418
##  2 Oz-1     89.1  8.19       2      0.00371  0.0416
##  3 Oz-1    126.   8.19       3      0.00525  0.0415
##  4 Oz-1    215.   8.18       4      0.00896  0.0413
##  5 Oz-1    304.   8.17       5      0.0127   0.0411
##  6 Oz-1    341.   8.16       6      0.0142   0.0410
##  7 Oz-1    430.   8.15       7      0.0179   0.0408
##  8 Oz-1    520.   8.14       8      0.0216   0.0406
##  9 Oz-1    609.   8.13       9      0.0254   0.0404
## 10 Oz-1    698.   8.13      10      0.0291   0.0402
## # … with 1,004 more rows

Limpiar archivo de bloqueo del conjunto de mapas de GRASS

unlink_.gislock()